package com.zhiteng.utils.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.context.ApplicationContext;
import org.springframework.web.context.ContextLoader;

import com.zhiteng.entity.SysDict;
import com.zhiteng.mapper.SysDictMapper;


/**
 * 
* <p>Title: DictUtils.java</p>  
* <p>Description: 字典工具类(用来缓存字典)</p>  
* @author dragon  
* @date 2018年12月1日  
* @version 1.0
 */
public class DictUtils {
	/*
	 * key --- String --- 字典分类
	 * value --- List --- list的值：字典实体SysDict
	 */
/*	private static Map<String, List<SysDict>> dictMap = new HashMap<String, List<SysDict>>();

	
	 * 查询所有字典对象，进行缓存
	 
	public static void queryDictAll() {
		ApplicationContext ac = ContextLoader.getCurrentWebApplicationContext();
		SysDictMapper dictMapper = ac.getBean(SysDictMapper.class);
		List<SysDict> sysDicts = dictMapper.selectAll();

		// 每次做字典缓存时都需要把之前的缓存先清空
		dictMap.clear();

		for (SysDict sysDict : sysDicts) {

			if (dictMap.containsKey(sysDict.getType())) {
				// map中已经存在该key
				dictMap.get(sysDict.getType()).add(sysDict);
			} else {
				// map中还没有该key
				List<SysDict> dicts = new ArrayList<SysDict>();
				dicts.add(sysDict);
				dictMap.put(sysDict.getType(), dicts);
			}
		}
	}
*/
	/*
	 * 根据类型和值，查询label，字典名称(如查询类型为sex,值为0时对应的名称(是男还是女))
	 */
	public static String queryDictByTypeAndValue(Map<String, List<SysDict>> dictMap,String type, Integer value) {
		List<SysDict> dicts = dictMap.get(type);
		for (SysDict sysDict : dicts) {
			if (value==sysDict.getValue()) {
				return sysDict.getLabel();
			}
		}
		//	指定类型中不存在该值
		return "";
	}

	/*
	 * 根据类型，查询字典对象集合(应用场景：如下拉列表)
	 */
	public static List<SysDict> queryDictByType(Map<String, List<SysDict>> dictMap,String type) {
		return dictMap.get(type);
	}
}
